/**
 * 
 */
package furniture.render3d;

import java.util.List;

import javax.vecmath.Point3d;
import javax.vecmath.Vector3d;

import org.eclipse.swt.graphics.RGB;

/**
 * @author Grill Balazs (balage.g@gmail.com)
 *
 */
public interface Polygon3d extends Comparable<Polygon3d>, TriangleSet{

	/**
	 * @return weight center point of the polygon
	 */
	public Point3d center();
	
	/**
	 * @return List of points
	 */
	public List<Point3d> getPoints();
	
	/**
	 * @return true if the polygon should be filled
	 */
	public boolean fill();
	
	/**
	 * @return Paint object used to fill or draw the polygon
	 */
	public RGB getPaint();
	
	/**
	 * @return Color of the polygon
	 */
	public RGB getColor();
	
	/**
	 * set the given new points as points of the polygon 
	 * @param points
	 */
	public void setPoints(List<Point3d> points);
	
	/**
	 * @return a copy of this polygon
	 */
	public Polygon3d copy();
	
	/**
	 * Translate the points of the polygon by the given vector
	 * @param vector
	 */
	public void translate(Vector3d vector);
}
